Network processors are generally used for analyzing and processing packet data for routing and switching packets in a variety of applications, such as network surveillance, video transmission, protocol conversion, voice processing, and internet traffic routing.
A typical network processor includes multiple general-purpose processors and multiple hardware accelerators. In such a system, the general-purpose processors can make decisions on a dynamic, packet-by-packet basis, and provide data packets to the hardware accelerators or other processors that are required to process each packet.